package cn.stylefeng.roses.kernel.pay.modular.entity;

import cn.stylefeng.roses.kernel.db.api.pojo.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单实例类
 *
 * @author stylefeng
 * @date 2021/06/23 22:28
 */
@TableName("shop_order")
@Data
@EqualsAndHashCode(callSuper = true)
public class Order extends BaseEntity {

    /**
     * 订单id
     */
    @TableId(value = "order_id", type = IdType.ASSIGN_ID)
    private Long orderId;

    /**
     * 订单号，时间戳加6位随机字符串
     */
    @TableField("order_number")
    private String orderNumber;

    /**
     * 用户id
     */
    @TableField("customer_id")
    private Long customerId;

    /**
     * 商品id
     */
    @TableField("goods_id")
    private Long goodsId;

    /**
     * 商品名称
     */
    @TableField("goods_name")
    private String goodsName;

    /**
     * 订单到期时间，为空为永久
     */
    @TableField("expiration_time")
    private Date expirationTime;

    /**
     * 实付金额
     */
    @TableField("pay_price")
    private BigDecimal payPrice;

    /**
     * 标价总金额
     */
    @TableField("total_price")
    private BigDecimal totalPrice;

    /**
     * 状态，1待支付、2已完成、3已取消、4已退款
     */
    @TableField("state")
    private Integer state;

    /**
     * 支付时间
     */
    @TableField("pay_time")
    private Date payTime;

    /**
     * YunGouOS系统单号
     */
    @TableField("order_no")
    private String orderNo;

    /**
     * 支付单号
     */
    @TableField("pay_no")
    private String payNo;

    /**
     * 支付渠道：alipay，wxpay
     */
    @TableField("pay_channel")
    private String payChannel;

    /**
     * 支付时的签名
     */
    @TableField("sign")
    private String sign;

    /**
     * 用户openId
     */
    @TableField("open_id")
    private String openId;

}
